package com.py.credit.dao;

import com.py.credit.common.Page;
import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface NetworkMdSearchDao {

    /**
     * 查询奖惩领域的搜索条件
     *
     * @param jclb
     * @return
     */
    List<LinkedHashMap> selectGzNameList(@Param(value = "jclb") String jclb);

    /**
     * 名单查询分页列表(自然人进行身份证号遮蔽)
     *
     * @param jclb
     * @param type
     * @param remark
     * @param searchKey
     * @param page
     * @return
     */
    List<LinkedHashMap> selectZtmcListForPage(@Param(value = "jclb") String jclb,
                                              @Param(value = "type") String type,
                                              @Param(value = "remark") String remark,
                                              @Param(value = "searchKey") String searchKey,
                                              @Param(value = "page") Page page);

    /**
     * 查询红黑名单数量
     *
     * @param jclb
     * @return
     */
    int selectHongheimdCount(@Param(value = "jclb") String jclb,
    		@Param(value = "status") String status);

    /**
     * 获取案号列表
     *
     * @param jclb
     * @param tybm
     * @return
     */
    List<LinkedHashMap> selectMdList(@Param(value = "jclb") String jclb,
                                     @Param(value = "tybm") String tybm,
                                     @Param(value = "deptId") String deptId);

    /**
     * 获取案件详情(自然人进行身份证号遮蔽)
     *
     * @param ajbh
     * @return
     */
    LinkedHashMap selectMdInfo(@Param(value = "ajbh") String ajbh);

    /**
     * 获取奖惩措施红黑名单
     *
     * @param jclb
     * @param page
     * @return
     */
    List<LinkedHashMap> selectCsMdForPage(@Param(value = "jclb") String jclb,
                                          @Param(value = "page") Page page);

    /**
     * 下载各措施对应的红黑名单excel表格(自然人进行身份证号遮蔽)
     *
     * @param jclb
     * @param gzId
     * @param deptId
     * @param csId
     * @return
     */
    List<Map<String, String>> selectDownloadMdList(@Param(value = "jclb") String jclb,
                                                   @Param(value = "gzId") String gzId,
                                                   @Param(value = "deptId") String deptId,
                                                   @Param(value = "csId") String csId);

    /**
     * 查询配合部门的措施数量(包含所有部门)
     *
     * @param deptNum
     * @param name
     * @return
     */
    List<LinkedHashMap> selectAllPhDeptNum(@Param(value = "deptNum") int deptNum,
                                           @Param(value = "jclb") String jclb,
                                           @Param(value = "name") String name);

    /**
     * 查询配合部门的措施数量(不包含所有部门)
     *
     * @param name
     * @return
     */
    List<LinkedHashMap> selectPhDeptNum(@Param(value = "jclb") String jclb,
                                        @Param(value = "name") String name);

    /**
     * 查询包含所有部门的措施数量
     *
     * @param name
     * @return
     */
    int selectAllDeptCsNum(@Param(value = "jclb") String jclb,
                           @Param(value = "name") String name);

    /**
     * 查询规则详情
     *
     * @param jclb
     * @param name
     * @return
     */
    List<LinkedHashMap> selectGzInfo(@Param(value = "jclb") String jclb,
                                     @Param(value = "name") String name);

    /**
     * 查询规则中配合部门对应的措施
     *
     * @param jclb
     * @param name
     * @param page
     * @return
     */
    List<LinkedHashMap> selectGzCsForPage(@Param(value = "jclb") String jclb,
                                   @Param(value = "name") String name,
                                   @Param(value = "page") Page page);
}
